package cn.hill4j.tool.spring.ext.iop;

import java.lang.annotation.*;

/**
 * ClassName: IopClient
 * Description: iop基础配置注解
 * @author hillchen
 * Date: 2023/8/12
 * @version: 1.0
 */
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
public @interface IopClient {
    /**
     * @author hillchen
     * Description: iopclient构造器
     * Date: 2023/8/12 23:27
     * @return Class
     **/
    Class<? extends IopClientBuilder> clientBuilder();
    /**
     * @author hillchen
     * Description: iopclient bean扩展字段定义处理类
     * Date: 2023/8/12 23:27
     * @return Class
     **/
    Class<? extends IopClientsDefiner> definer() default AutoFieldClientDefiner.class;

    /**
     * @author hillchen
     * Description: iopclient配置注解类型
     * Date: 2023/8/12 23:28
     * @return Class
     **/
    Class<? extends Annotation> configAnnotation() default IopClient.class ;

    /**
     * @author hillchen
     * Description: 外部配置类
     * Date: 2023/8/12 23:29
     * @return Class
     **/
    Class<?>[] configuration() default {};
}
